package com.oop;

/**
 * @功能：demo11继承demo10,this与super
 * @版本： V1
 * @版权： 信息技术有限公司（http://www.mychery.com/）
 * @作者： 磐石战队开发组  00355760
 * @日期： 2024/8/5 13:31
 */
public class demo11 extends demo10 {

    //子类继承了父类，就会拥有父类的全部方法
    //除了继承，还有用组合
    //ctrl+H可以看到继承树

    /**
     * super注意点：
     *
     * super调用父类的构造方法，必须在构造方法的第一个
     * super必须只能出现在子类的方法或者构造方法中
     * super和this不能同时调用构造方法
     * Vs this：
     *
     * 代表的对象不同：this当前本身调用者这个对象；super代表父类对象的应用
     * 前提：this没有继承也可以使用，super只能在继承条件才可以使用
     * 构造方法：this()本类的构造；super()父类的构造
     */

    private String name = "wangcongfei";
    public void test(String name) {
        System.out.println("导入变量：" + name);
        System.out.println("this.name is " + this.name);
        System.out.println("super.name is " + super.name);
    }
    @Override
    public void print() {
        System.out.println("Student");
    }
    public void test1(){
        print();
        this.print();
        super.print();
    }
    //快捷键生成一个子类的无参构造器
    //隐藏代码：调用了父类的无参构造器
    public demo11(){
        //this("hello");当调用子类有参构造器放在第一行时，则显示定义父类构造器不满足放在第一行的要求，也会报错
        super();//调用父类的构造器，必须要在子类构造器的第一行，正常这行代码不写也可以，默认也是调用的父类构造器。
        //this("hello");调用有参构造必须是子类构造器的第一行
        System.out.println("Student无参被执行了");
    }
    //快捷键再生成一个有参构造器
    public demo11(String name) {
        this.name = name;
    }
}